package com.ucode.springboot.starter.security.provider;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;

import com.ucode.springboot.starter.security.service.UcodePasswordVerifier;

/**
 * 自定义密码校验
 * @author: liliang
 * @date: 2019年12月26日 下午3:26:42
 */
@Component
public class UcodePasswordEncoder implements PasswordEncoder{

    @Autowired
    private UcodePasswordVerifier passwordVerifier;
    
    @Override
    public String encode(CharSequence rawPassword) {
        //这里无用,不需要处理
        return null;
    }

    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        /**
         * 密码校验->rawPassword:用户输入的密码，encodedPassword:我们查出来的数据库密码
         * 这里判断数据库里的密码是否为null,如果为NUll则代表不用校验密码,可直接放行,例如：第三方应用快捷登陆,至于第三方快捷登录需要自主实现校验
         */
        return passwordVerifier.matches(rawPassword, encodedPassword);

    }

}
